-
Notifications
You must be signed in to change notification settings - Fork 583
优化开始观看的体验以及上千剧集时体验 #1477
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
优化开始观看的体验以及上千剧集时体验 #1477
Conversation
现在可以在播放时设置弹幕播放速度是否跟视频倍速一致,也可以在设置-弹幕设置中管理,两个选项是同步的。
fix Predidit#1142 现在已经可以将番剧中标记为“抛弃”的番剧屏蔽,同时会即时将这个番剧移除出首页推荐以及时间表
1.将代码解耦,重构了大部分代码 2.回滚首页推荐页的“抛弃”番剧的屏蔽,已恢复原来的样式 3.将搜索与日期表的筛选器同步,
1.现在当用户点击开始观看时,会缓存选中源的剧集数量以及剧集名称 2.基于此,我优化了剧集太多会过长的问题(例如火影忍者,名侦探柯南),我引入滑块机制,单剧集下最多显示50集,滑块每次显示50集 3.基于2,我将代码复用至播放时的播放列表功能。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
这个模块的职责有些不清晰,在 repositories 文件夹下的应该只是一些接口而不是包括大量复杂逻辑的UI组件
尝试把UI组件拆分到 /lib/bean 目录下
lib/request/query_manager.dart
Outdated
| QueryManager({ | ||
| required this.infoController, | ||
| }); | ||
| IVideoSourceRepository? videoSourceRepository, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
构造函数问题,我们从为传递过这些新的变量,要么保持使用 modular 进行注入,并在构造函数中移除它们。要么显式传递这些变量并使用 required 修饰它们
lib/request/query_manager.dart
Outdated
|
|
||
| final InfoController infoController; | ||
| final PluginsController pluginsController = Modular.get<PluginsController>(); | ||
| final PluginsController _pluginsController; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
我理解使用下划线代表这是不应该被外部访问的私有变量
但是这个工程中的大部分地方没有遵循这一规范,所以移除这些下划线
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#1274 中提到的应该是指竖向的翻页进度条,就像 chrome 浏览器右侧那样
当前的用户交互非常奇怪,至少我从未见过这样的交互设计
|
|
||
| @override | ||
| @action | ||
| void clearAllCache() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
缓存退出方法似乎从未被调用,缓存永远不会失效
即使不考虑视频资源站点 URL 变更的问题,我们也需要缓存失效机制,来查看番剧的最新更新
这些缓存可以保留一段时间,但最长不应该超过1小时,或是随着 queryManager 的销毁立即销毁
|
这个放在进入视频前真的好看吗,感觉可以作为视频页面内的选集页面优化 另外这里用 Slider 感觉怪怪的,可以考虑使用类似 tab 的形式进行选择,支持横向滑动 |
|
这里的UI确实值得商榷 slider 应该被移除,并且需要考虑一下移动设备上的布局,可能需要在移动设备上把 bottomSheet 调高一些 不过多重 tab 应该也不好看 |
|
如果只是想要跳转到某一集的位置为什么不在播放页加一个输入框直接输入呢? |
|
我考虑了一下,我赞同 @ErBWs 的观点 既然我们已经确认缓存需要尽快失效并且在很多情况下存在问题 我们似乎没有必要引入相关机制,并且这里的 UI 应该很难设计的好看,还让使用者在观看视频之前强制多了一次点击 |
@ErBWs @Predidit 实际上我设计的逻辑是:优化用户第一次播放番剧的逻辑,可以通过事先选集的方式来“决定开始”,之后我打算优化追番功能,使用户在我的追番界面点击后以上次的默认源以及最后退出的位置开始播放。 在这样的考量下,我认为引入这样的UI设计逻辑是可以接受的,其他的代码问题我很快会修复。
对于这个思考,我认为设计出来的ui似乎会更加不好看? |
|
我在想办法解决新版本 flutter 破坏了 media-kit linux 硬件加速的 openGL 问题 我会在完成后尽快回到这个问题上 |
|
hi,现在我们要来继续讨论这个pr的可实现性吗? |
|
是的,我们可以讨论这个问题的可行性,flutter 3.38 的相关问题已经解决,并且我已经让 x11 上的硬件加速渲染见鬼去了 ^_^ 我的意见和之前一致,主要问题是两方面
|
对于第一点,我的思考是这样,我自己平时看番比较多,并且也经常在kazumi上看。我发现有时候会出现一个问题是:默认打开最新一集,这个应该是流的问题,有的流会倒序加载。 在这个基础上,我思考了一下,也许我们可以暂时放弃这样激进的调整策略,而我进行一个新的pr,在加载流的时候进行一次倒序重新调整剧集的排序? 因为在倒序的情况下,实际上我遇到过很多次是点击下一集是变成从第六集跳到第五集。/( |
|
剧集的顺序问题很难处理,因为我们并不知道我们获取到的每剧的序号,我们获取的是字符串 我们本来就很难判断剧集是正序还是倒序,存在类似于 无修 HD 第0集 OVA1 这样的干扰 |
如果需要我来做这个东西我可以提一个pr,但因为工作,会比较晚 |
fix 选集列表增加滑动导航条 #1274
下图展示